<?php

/*
  | --------------------------------------------------------------------------------------------------
  | <cadastros_model>
  |
  | Desenvolvedor:	Eduardo Sirangelo
  | E-mail:		sirangelos@ibest.com.br
  | Descrição:
  |	-
  | Quality is Everyting
  | --------------------------------------------------------------------------------------------------
 */
class Cadastros_model extends Model {

    function Cadastros_model()
    {
        // Chama o construtor do Model
        parent::Model();
    }
    
    /**
     * =========================================================================
     * CLIENTES
     * =========================================================================
     */
    function get_clientes_by_where($where) {
        $this->db->order_by("id_cliente");
        return $this->db->get_where("tab_clientes",$where);
    }
    
    function active_client($id) {
        
        $where = array("id_cliente" => $id);
        $query = $this->db->get_where("tab_clientes",$where);
        $row   = $query->row();
        
        if($row->ativo == 0) {
            $data['ativo']  = 1;
            $return         = "ativo";
        } elseif($row->ativo == 1) {
            $data['ativo']  = 0;
            $return         = "inativo";
        }

        $this->db->update("tab_clientes",$data,$where);
        
        return $return;
        
    }
    
    function insert_client($data) {
        
        //Inicia transação
        $this->db->trans_begin();
        
        $this->db->insert('tab_clientes', $data);
        $idCliente = $this->db->insert_id();
        
        if ($this->db->trans_status() === FALSE) {
            
            $this->db->trans_rollback();
            return 0;
            
        } else {
            
            $this->db->trans_commit();
            return 1;
            
        }
        
    }
    
    function update_client($data,$where) {
        //Inicia transação
        $this->db->trans_begin();
        
        $this->db->update('tab_clientes', $data, $where);
        
        if ($this->db->trans_status() === FALSE) {
            
            $this->db->trans_rollback();
            return 0;
            
        } else {
            
            $this->db->trans_commit();
            return 1;
            
        }
    }
    
    /**
     * =========================================================================
     * FORNECEDORES
     * =========================================================================
     */
    
    function get_fornecedores_by_where($where) {
        $this->db->order_by("id_fornecedor");
        return $this->db->get_where("tab_fornecedores",$where);
    }
    
    function active_fornecedor($id) {
        
        $where = array("id_fornecedor" => $id);
        $query = $this->db->get_where("tab_fornecedores",$where);
        $row   = $query->row();
        
        if($row->ativo == 0) {
            $data['ativo']  = 1;
            $return         = "ativo";
        } elseif($row->ativo == 1) {
            $data['ativo']  = 0;
            $return         = "inativo";
        }

        $this->db->update("tab_fornecedores",$data,$where);
        
        return $return;
        
    }
    
    function insert_fornecedor($data) {
        
        //Inicia transação
        $this->db->trans_begin();
        
        $this->db->insert('tab_fornecedores', $data);
        $idCliente = $this->db->insert_id();
        
        if ($this->db->trans_status() === FALSE) {
            
            $this->db->trans_rollback();
            return 0;
            
        } else {
            
            $this->db->trans_commit();
            return 1;
            
        }
        
    }
    
    function update_fornecedor($data,$where) {
        //Inicia transação
        $this->db->trans_begin();
        
        $this->db->update('tab_fornecedores', $data, $where);
        
        if ($this->db->trans_status() === FALSE) {
            
            $this->db->trans_rollback();
            return 0;
            
        } else {
            
            $this->db->trans_commit();
            return 1;
            
        }
    }
    
    /**
     * =========================================================================
     * ESPECIALIDADES
     * =========================================================================
     */
    
    function get_especialidades_by_where($where) {
        $this->db->order_by("id_especialidade");
        return $this->db->get_where("tab_especialidades",$where);
    }
    
    function active_especialidade($id) {
        
        $where = array("id_especialidade" => $id);
        $query = $this->db->get_where("tab_especialidades",$where);
        $row   = $query->row();
        
        if($row->ativo == 0) {
            $data['ativo']  = 1;
            $return         = "ativo";
        } elseif($row->ativo == 1) {
            $data['ativo']  = 0;
            $return         = "inativo";
        }

        $this->db->update("tab_especialidades",$data,$where);
        
        return $return;
        
    }
    
    function insert_especialidade($data) {
        
        //Inicia transação
        $this->db->trans_begin();
        
        $this->db->insert('tab_especialidades', $data);
        $idCliente = $this->db->insert_id();
        
        if ($this->db->trans_status() === FALSE) {
            
            $this->db->trans_rollback();
            return 0;
            
        } else {
            
            $this->db->trans_commit();
            return 1;
            
        }
        
    }
    
    function update_especialidade($data,$where) {
        //Inicia transação
        $this->db->trans_begin();
        
        $this->db->update('tab_especialidades', $data, $where);
        
        if ($this->db->trans_status() === FALSE) {
            
            $this->db->trans_rollback();
            return 0;
            
        } else {
            
            $this->db->trans_commit();
            return 1;
            
        }
    }
    
    /**
     * =========================================================================
     * PROFISSIONAIS
     * =========================================================================
     */
    
    function get_profissionais_by_where($where) {
        $this->db->order_by("id_profissional");
        return $this->db->get_where("tab_profissionais",$where);
    }
    
    function get_especialidades_by_profissional($id) {
        $this->db->select('tab_rel_profissional_especialidade.id_profissional,tab_especialidades.id_especialidade as id_especialidade,tab_especialidades.especialidade as especialidade');
        $this->db->from('tab_rel_profissional_especialidade');
        $this->db->join('tab_especialidades', 'tab_especialidades.id_especialidade = tab_rel_profissional_especialidade.id_especialidade');
        $this->db->where(array("id_profissional" => $id));
        $this->db->order_by("tab_rel_profissional_especialidade.id_profissional");
        return $this->db->get();
    }
    
    function active_profissional($id) {
        
        $where = array("id_profissional" => $id);
        $query = $this->db->get_where("tab_profissionais",$where);
        $row   = $query->row();
        
        if($row->ativo == 0) {
            $data['ativo']  = 1;
            $return         = "ativo";
        } elseif($row->ativo == 1) {
            $data['ativo']  = 0;
            $return         = "inativo";
        }

        $this->db->update("tab_profissionais",$data,$where);
        
        return $return;
        
    }
    
    function insert_profissional($data,$data2) {
        
        //Inicia transação
        $this->db->trans_begin();
        
        $this->db->insert('tab_profissionais', $data);
        $id_profissional = $this->db->insert_id();
        
        foreach($data2 as $data3) {
            $data3['id_profissional'] = $id_profissional;
            $this->db->insert("tab_rel_profissional_especialidade",$data3);
        }
        
        if ($this->db->trans_status() === FALSE) {
            
            $this->db->trans_rollback();
            return 0;
            
        } else {
            
            $this->db->trans_commit();
            return 1;
            
        }
        
    }
    
    function update_profissional($data,$data2,$where) {
        //Inicia transação
        $this->db->trans_begin();
        
        $this->db->update('tab_profissionais', $data, $where);
        
        $this->db->delete("tab_rel_profissional_especialidade",$where);
        
        foreach($data2 as $data3) {            
            $this->db->insert("tab_rel_profissional_especialidade",$data3);
        }
        if ($this->db->trans_status() === FALSE) {
            
            $this->db->trans_rollback();
            return 0;
            
        } else {
            
            $this->db->trans_commit();
            return 1;
            
        }
    }
    
    /**
     * =========================================================================
     * SERVIÇOS
     * =========================================================================
     */
    
    function get_servicos_by_where($where) {
        $this->db->order_by("id_servico");
        return $this->db->get_where("tab_servicos",$where);
    }
    
    function get_dias_semana_by_where($where = "") {
        $this->db->order_by("id_dia_semana");
        if($where == "") {
            return $this->db->get("tab_aux_dias_semana");
        } else {
            return $this->db->get_where("tab_aux_dias_semana",$where);
        }
        
    }
    
    function get_servicos_dias_semana_valor($id_servico,$id_dia_semana) {
        return $this->db->get_where("tab_servicos_dia_semana_valor",array("id_servico" => $id_servico,"id_dia_semana" => $id_dia_semana));
    }
    
    function active_servico($id) {
        
        $where = array("id_servico" => $id);
        $query = $this->db->get_where("tab_servicos",$where);
        $row   = $query->row();
        
        if($row->ativo == 0) {
            $data['ativo']  = 1;
            $return         = "ativo";
        } elseif($row->ativo == 1) {
            $data['ativo']  = 0;
            $return         = "inativo";
        }

        $this->db->update("tab_servicos",$data,$where);
        
        return $return;
        
    }
    
    function insert_servico($data,$data2) {
        
        //Inicia transação
        $this->db->trans_begin();
        
        $this->db->insert('tab_servicos', $data);
        $id_servico = $this->db->insert_id();
        
        foreach($data2 as $data3) {
            $data3['id_servico'] = $id_servico;
            $this->db->insert("tab_servicos_dia_semana_valor",$data3);
        }
        
        if ($this->db->trans_status() === FALSE) {
            
            $this->db->trans_rollback();
            return 0;
            
        } else {
            
            $this->db->trans_commit();
            return 1;
            
        }
        
    }
    
    function update_servico($data,$data2,$where) {
        //Inicia transação
        $this->db->trans_begin();
        
        $this->db->update('tab_servicos', $data, $where);
        
        $this->db->delete("tab_servicos_dia_semana_valor",$where);
        
        foreach($data2 as $data3) {
            $this->db->insert("tab_servicos_dia_semana_valor",$data3);
        }
        
        if ($this->db->trans_status() === FALSE) {
            
            $this->db->trans_rollback();
            return 0;
            
        } else {
            
            $this->db->trans_commit();
            return 1;
            
        }
    }
    
    /**
     * =========================================================================
     * CONDIÇÕES DE PAGAMENTO
     * =========================================================================
     */
    
    function get_condicoes_pagamento_by_where($where) {
        $this->db->order_by("id_condicao_pagamento");
        return $this->db->get_where("tab_condicoes_pagamento",$where);
    }
    
    function active_condicao_pagamento($id) {
        
        $where = array("id_condicao_pagamento" => $id);
        $query = $this->db->get_where("tab_condicoes_pagamento",$where);
        $row   = $query->row();
        
        if($row->ativo == 0) {
            $data['ativo']  = 1;
            $return         = "ativo";
        } elseif($row->ativo == 1) {
            $data['ativo']  = 0;
            $return         = "inativo";
        }

        $this->db->update("tab_condicoes_pagamento",$data,$where);
        
        return $return;
        
    }
    
    function insert_condicao_pagamento($data) {
        
        //Inicia transação
        $this->db->trans_begin();
        
        $this->db->insert('tab_condicoes_pagamento', $data);
        $id_condicao_pagamento = $this->db->insert_id();
        
        if ($this->db->trans_status() === FALSE) {
            
            $this->db->trans_rollback();
            return 0;
            
        } else {
            
            $this->db->trans_commit();
            return 1;
            
        }
        
    }
    
    function update_condicao_pagamento($data,$where) {
        //Inicia transação
        $this->db->trans_begin();
        
        $this->db->update('tab_condicoes_pagamento', $data, $where);
        
        if ($this->db->trans_status() === FALSE) {
            
            $this->db->trans_rollback();
            return 0;
            
        } else {
            
            $this->db->trans_commit();
            return 1;
            
        }
    }
    
    /**
     * =========================================================================
     * TIPOS DE PRODUTOS
     * =========================================================================
     */
    
    function get_tp_produtos_by_where($where) {
        $this->db->order_by("id_tp_produto");
        return $this->db->get_where("tab_tp_produtos",$where);
    }
    
    function active_tp_produtos($id) {
        
        $where = array("id_tp_produto" => $id);
        $query = $this->db->get_where("tab_tp_produtos",$where);
        $row   = $query->row();
        
        if($row->ativo == 0) {
            $data['ativo']  = 1;
            $return         = "ativo";
        } elseif($row->ativo == 1) {
            $data['ativo']  = 0;
            $return         = "inativo";
        }

        $this->db->update("tab_tp_produtos",$data,$where);
        
        return $return;
        
    }
    
    function insert_tp_produtos($data) {
        
        //Inicia transação
        $this->db->trans_begin();
        
        $this->db->insert('tab_tp_produtos', $data);
        $id_condicao_pagamento = $this->db->insert_id();
        
        if ($this->db->trans_status() === FALSE) {
            
            $this->db->trans_rollback();
            return 0;
            
        } else {
            
            $this->db->trans_commit();
            return 1;
            
        }
        
    }
    
    function update_tp_produtos($data,$where) {
        //Inicia transação
        $this->db->trans_begin();
        
        $this->db->update('tab_tp_produtos', $data, $where);
        
        if ($this->db->trans_status() === FALSE) {
            
            $this->db->trans_rollback();
            return 0;
            
        } else {
            
            $this->db->trans_commit();
            return 1;
            
        }
    }
    
    /**
     * =========================================================================
     * PRODUTOS
     * =========================================================================
     */
    
    function get_produtos_by_where($where) {
        
        $this->db->select('tab_produtos.*,tab_tp_produtos.tp_produto,tab_aux_unidades.unidade');
        $this->db->from('tab_produtos');
        $this->db->join('tab_tp_produtos', 'tab_produtos.id_tp_produto = tab_tp_produtos.id_tp_produto','left');
        $this->db->join('tab_aux_unidades','tab_produtos.id_unidade = tab_aux_unidades.id_unidade','left');
        $this->db->where($where);
        $this->db->order_by("id_produto");
        return $this->db->get();

        /*$this->db->order_by("id_produto");
        return $this->db->get_where("tab_produtos",$where);
         * 
         */
    }
    
    function get_unidades() {
        $this->db->order_by("id_unidade");
        return $this->db->get("tab_aux_unidades");
    }
    
    function active_produtos($id) {
        
        $where = array("id_produto" => $id);
        $query = $this->db->get_where("tab_produtos",$where);
        $row   = $query->row();
        
        if($row->ativo == 0) {
            $data['ativo']  = 1;
            $return         = "ativo";
        } elseif($row->ativo == 1) {
            $data['ativo']  = 0;
            $return         = "inativo";
        }

        $this->db->update("tab_produtos",$data,$where);
        
        return $return;
        
    }
    
    function insert_produtos($data) {
        
        //Inicia transação
        $this->db->trans_begin();
        
        $this->db->insert('tab_produtos', $data);
        $id_produto = $this->db->insert_id();
        
        if ($this->db->trans_status() === FALSE) {
            
            $this->db->trans_rollback();
            return 0;
            
        } else {
            
            $this->db->trans_commit();
            return 1;
            
        }
        
    }
    
    function update_produtos($data,$where) {
        //Inicia transação
        $this->db->trans_begin();
        
        $this->db->update('tab_produtos', $data, $where);
        
        if ($this->db->trans_status() === FALSE) {
            
            $this->db->trans_rollback();
            return 0;
            
        } else {
            
            $this->db->trans_commit();
            return 1;
            
        }
    }
    
}
?>
